/*********************************************************************************************
* 文件：apl_led.c
* 作者：Zhouchj 2020.09.23
* 描述：LED线程源文件
* 修改：
*       
* 注释：
*********************************************************************************************/
#include "apl_led.h"
#include "drv_led.h"
#include "drivers/pin.h"

rt_thread_t led_thread = RT_NULL;
/*********************************************************************************************
* 名称：led_thread_entry()
* 功能：LED线程入口函数
* 参数：*parameter -> 入口参数
* 返回：无
* 修改：
* 注释：
*********************************************************************************************/
static void led_thread_entry(void *parameter)
{
  (void)parameter;
  led_pin_init();                                               // LED引脚初始化
  while(1)
  {
    rt_pin_write(LED1_PIN_NUM, 0);
    rt_thread_mdelay(20);                                       // 延时500ms
    rt_pin_write(LED1_PIN_NUM, 1);
    rt_thread_mdelay(3000);                                      // 延时500ms
  }
}

/*********************************************************************************************
* 名称：led_thread_init()
* 功能：LED线程初始化函数
* 参数：无
* 返回：   -1 -> led线程创建失败
*           0 -> led线程创建成功
* 修改：
* 注释：
*********************************************************************************************/
int led_thread_init(void)
{
  rt_err_t result = RT_EOK;
  led_thread = rt_thread_create("led",                          // 线程名称
                                led_thread_entry,               // 线程入口函数
                                RT_NULL,                        // 入口函数传入参数
                                256,                            // 线程堆栈大小
                                10,                             // 线程优先级
                                20);                            // 线程时间片
  
  if(led_thread == RT_NULL) return -1;
  
  result = rt_thread_startup(led_thread);                     // 启动LED线程
  if(result == RT_EOK)
    rt_kprintf("led thread starting success!\n");
  else
    rt_kprintf("led thread failed to start, errCode:%d\n", result);
  return 0;
}

